package com.achf.siap.cd.dao;

import java.util.List;

/**
 *
 * @author Aureliano
 */
public interface IDAO<T> {

    public abstract Class<?> getEntityClass();

    public abstract void save(T entity);

    public abstract void delete(T entity);

    public abstract void refresh(T entity);

    public abstract T load(Long id);

    public abstract T get(Long id);

    public abstract List<T> listAll();

    public abstract List<T> findByExample(final T example);

    public abstract T findOneByExample(final T example);

    public abstract List<T> listAll(final int first, final int max);

    public abstract int listAllPageCount();

    public abstract List<T> findByExample(final T example, final int first, final int max);

    public abstract int findByExamplePageCount(final T example);
}